package com.xbongbong.paas.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.sms.pojo.dto.SmsBalanceDTO;
import com.xbongbong.pro.sms.pojo.dto.SmsDealingDTO;
import com.xbongbong.pro.sms.pojo.dto.SmsMobileListDTO;
import com.xbongbong.pro.sms.pojo.dto.SmsPullReplyDTO;
import com.xbongbong.pro.sms.pojo.dto.SmsReplyLogListDTO;
import com.xbongbong.pro.sms.pojo.dto.SmsSearchListDTO;
import com.xbongbong.pro.sms.pojo.dto.SmsSignDTO;
import com.xbongbong.pro.sms.pojo.vo.SmsBalanceVO;
import com.xbongbong.pro.sms.pojo.vo.SmsDealingVO;
import com.xbongbong.pro.sms.pojo.vo.SmsMobileListVO;
import com.xbongbong.pro.sms.pojo.vo.SmsPullReplyVO;
import com.xbongbong.pro.sms.pojo.vo.SmsReplyLogListVO;
import com.xbongbong.pro.sms.pojo.vo.SmsSearchListVO;
import com.xbongbong.pro.sms.pojo.vo.SmsSignVO;

/**
 * @version v1.0
 * @auther: youli.chen
 * @description: 回复短信方法
 * @date: 2019-11-28 17:42
 * @since v1.0
 */
public interface SmsReplyService {

    /**
     * 通过crontab定时任务不停的拉取回复短信
     * @param smsPullReplyDTO 入参
     * @return
     * @author youli.chen
     * @since
     * @version
     */
    SmsPullReplyVO cronTabPullSmsReply(SmsPullReplyDTO smsPullReplyDTO) throws XbbException;

    /**
     * 表单列表
     * @param smsSearchListDTO 关联业务DTO
     * @return 表单VO
     * @throws XbbException 业务异常
     */
    SmsSearchListVO getSmsSearchList(SmsSearchListDTO smsSearchListDTO) throws XbbException;

    /**
     * 查询当前公司是不是短信初始用户(有没有申请过签名)
     * @param smsSignDTO 查询当前公司是不是短信初始用户DTO
     * @return 签名
     * @throws XbbException 业务异常
     */
    SmsSignVO smsSign(SmsSignDTO smsSignDTO) throws XbbException;

    /**
     * 查询当前公司短信账户余额
     * @param smsBalanceDTO 查询当前公司短信账户余额DTO
     * @return 账户余额
     * @throws XbbException 业务异常
     */
    SmsBalanceVO getSmsBalance(SmsBalanceDTO smsBalanceDTO) throws XbbException;

    /**
     * 对象对应的号码(短信号码)
     * @param smsMobileListDTO 对象对应的号码(短信号码)DTO
     * @return 对象对应的号码(短信号码)VO
     * @throws XbbException 业务异常
     */
    SmsMobileListVO smsMobileList(SmsMobileListDTO smsMobileListDTO) throws XbbException;

    /**
     * 根据号码查询发送短信以及回复短信(短信往来)
     * @param smsDealingDTO 短信往来DTO
     * @return 短信往来记录
     * @throws XbbException 业务异常
     */
    SmsDealingVO smsDealingList(SmsDealingDTO smsDealingDTO) throws XbbException;

    /**
     * 获取回复短信日志列表
     * @param smsReplyLogListDTO 入参
     * @return
     * @author youli.chen
     * @date: 2019-11-25 19:59
     * @since v1.0
     * @version v1.0
     */
    SmsReplyLogListVO logList(SmsReplyLogListDTO smsReplyLogListDTO) throws XbbException;
}
